1. Field of the Invention
This invention relates to testing electronic systems and, more particularly, to performing signature analysis.
2. Description of the Related Art
Signature analysis is a method of hardware testing. It involves calculating the signature of a set of data according to a particular algorithm, usually after this data has passed through some hardware under test. By comparing the actual signature with a signature that is known to be correct (a “golden” signature), a pass/fail determination of the hardware under test can be made.
Signature analysis may involve creating several signature registers throughout a particular system. As data and control signals flow past each signature register, the data and control signals may be captured and combined with the signature in the signature register by applying the signature algorithm. The golden signature used to verify the signatures in the signature registers may be determined through simulation or through performing a test with a particular set of test data on a system that is known to be operating correctly.
Problems may arise during signature analysis if the data and control signals that flow past each signature register are not predictable. Since each data and control signal value may affect the signature in the signature register, unpredictable values may cause unpredictable signatures. Unpredictable signatures do not provide a useful diagnosis of the hardware under test since they may produce an incorrect signature (i.e., a signature that doesn't match the golden signature) even if the system is actually working correctly. Thus, it is desirable to be able to capture predictable signatures in systems where unpredictable data may flow past signature registers.
One situation in which signature analysis may become problematic, if not impossible, occurs when data in multiple data streams is being passed from components (e.g., integrated circuits) via a routing circuit. While each data stream may itself be deterministic, the aggregate data stream that is passed to a recipient component by the routing circuit may not be deterministic. This non-determinism may result from different propagation delays for different data streams and differences in the outcome of arbitration within a routing circuit. For example, in one test, data in one data stream may be transmitted within the routing circuit before data in another data stream. In another test, the opposite may happen. Accordingly, the aggregate data stream captured at a particular point within the system may vary between different test executions on the same system as well as between executions of the same test on different systems. It may not be possible to perform signature analysis within certain parts of the system due to the non-deterministic aggregation of several deterministic data streams.